]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st-private: Fix memory leak
authorColin Walters <walters@verbum.org>
Thu, 5 May 2011 19:21:58 +0000 (15:21 -0400)
committerColin Walters <walters@verbum.org>
Thu, 5 May 2011 20:02:00 +0000 (16:02 -0400)
==13810== 11,360 bytes in 1 blocks are definitely lost in loss record 18,574 of 18,765
==13810==    at 0x4005447: calloc (vg_replace_malloc.c:467)
==13810==    by 0x5191882: standard_calloc (gmem.c:107)
==13810==    by 0x51920A7: g_malloc0 (gmem.c:196)
==13810==    by 0x4056201: blur_pixels (st-private.c:466)
==13810==    by 0x40573B4: _st_create_shadow_cairo_pattern (st-private.c:710)
==13810==    by 0x4070746: st_theme_node_paint (st-theme-node-drawing.c:856)
==13810==    by 0x3FEFFFFF: ???

https://bugzilla.gnome.org/show_bug.cgi?id=649497

src/st/st-private.c

index d0aa89bae933dd78a155aafe02f306b8466e4fe3..51798a1f8a613dde322dd3979bcbd31015abf476 100644 (file)
@@ -746,7 +746,7 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
                               (height_out - height_in) / 2.0);
       cairo_pattern_set_matrix (dst_pattern, &shadow_matrix);
 
-      return dst_pattern;
+      goto out;
     }
 
   /* Read all the code from the cairo_pattern_set_matrix call
@@ -784,6 +784,8 @@ _st_create_shadow_cairo_pattern (StShadow        *shadow_spec,
 
   cairo_pattern_set_matrix (dst_pattern, &shadow_matrix);
 
+ out:
+  g_free (pixels_out);
   return dst_pattern;
 }